﻿using iemtm.WeChat.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace iemtm.WeChat.Application.SystemCenter
{
    public interface IInfoAppService
    {
        /// <summary>
        /// 加载所属公司
        /// </summary>
        /// <returns></returns>
        dynamic GetCompanys();


        /// <summary>
        /// 获取登录人信息
        /// </summary>
        /// <returns></returns>

        UserAccount GetUser();

        /// <summary>
        /// 获取用户
        /// </summary>
        /// <param name="UserName"></param>
        /// <returns></returns>

        Task<dynamic> GetPerson(string UserName = "");

        /// <summary>
        /// 获取区域
        /// </summary>
        /// <returns></returns>
        Task<dynamic> GetAreas();
       

        /// <summary>
        /// 基站列表
        /// </summary>
        /// <param name="AreaCode"></param>
        /// <param name="pageIndex">页码</param>
        /// <param name="pageSize">数目</param>
        /// <param name="pageStr"></param>
        /// <returns></returns>
        Task<dynamic> GetBaseStationList(string AreaCode = "", int pageIndex = 1, int pageSize = 50, string pageStr = "");


        /// <summary>
        /// 获取基站信息
        /// </summary>
        /// <param name="BaseStationCode"></param>
        /// <returns></returns>
        Task<dynamic> GetBaseStationById(string BaseStationCode);

        /// <summary>
        /// 获取告警列表信息数量
        /// </summary>
        /// <param name="menuIndex"></param>
        /// <param name="cAreaName"></param>
        /// <param name="BaseStationName"></param>
        /// <param name="search"></param>
        /// <returns></returns>
        Task<dynamic> GetAlarmListCount(int menuIndex, string cAreaName, string BaseStationName, int search);
    

        /// <summary>
        /// 获取告警列表信息
        /// </summary>
        /// <param name="menuIndex"></param>
        ///  /// <param name="cAreaName"></param>
        /// <param name="BaseStationName"></param>
        /// <param name="search"></param>
        /// <returns></returns>
        Task<dynamic> GetAlarmList(int menuIndex, string cAreaName, string BaseStationName, int search);


        /// <summary>
        /// 发电记录
        /// </summary>
        /// <param name="userCode"></param>
        /// <param name="prjCode"></param>
        /// <param name="openId"></param>
        /// <param name="type"></param>
        /// <param name="paraStr"></param>
        /// <param name="pagesize"></param>
        /// <param name="topNum"></param>
        /// <returns></returns>
        Task<dynamic> GetGenRecord(string userCode, string prjCode, string openId, int type = 0, string paraStr = "", int pagesize = 50, int topNum = 0);
        
          
        /// <summary>
        /// 发电明细
        /// </summary>
        /// <param name="GenRecordId"></param>
        /// <returns></returns>
        Task<dynamic> GetGenRecordById(int GenRecordId);


        #region 指标通报
        /// <summary>
        /// 重要通知信息列表
        /// </summary>
        /// <param name="times"></param>
        /// <param name="paraStr"></param>
        /// <returns></returns>
        Task<dynamic> GetImportantList(int times = 0, string paraStr = "");

        /// <summary>
        /// 根据登录区域获取工单数量
        /// </summary>
        /// <returns></returns>
        Task<dynamic> GetAnnouceCountByArea(string date, int type = 0);
        #endregion
    }
}
